<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
		<meta name="apple-mobile-web-app-capable" content="yes">
		<meta name="apple-mobile-web-app-status-bar-style" content="black">
		<link rel="stylesheet" type="text/css" href="../../css/mui.min.css" />
		<script src="../../js/mui.min.js" type="text/javascript" charset="utf-8"></script>
		<style>
			.main_content p {
				font-size: 1em;
				color: black;
				text-indent: 2em;
				padding: 6px;
			}
			.main_content img {
				padding: 8px;
			}
			.sub_header {
				text-align: center;
				background-color: rgba(0, 188, 0, 0.7);
				height: 36px;
				margin-top: 8px;
				margin-bottom: 8px;
			}
			.sub_header h3 {
				color: white;
				position: relative;
				top: 20%;
				transform: translateY(-50%);
			}
		</style>
	</head>

	<body>
		<header class="mui-bar mui-bar-nav">
			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
			<h1 class="mui-title">Java 基础</h1>
		</header>
		<div class="mui-content">
			<div class="mui-content-padded" style="margin: 5px;">
				<div class="sub_header">
					<h3>数组声明</h3>
				</div>
				<div class="main_content">
					<p>数组相当于一堆数放到一起。
						<br /> [code=java]
						<br /> String[] players = {#[Fields]&quot;王菲&quot;#, #[Fields]&quot;张飞&quot;#, #[Fields]&quot;刘亦菲&quot;#};
						<br /> String[] cards = {#[Fields]&quot;黑桃Q&quot;#, #[Fields]&quot;黑桃K&quot;#, #[Fields]&quot;黑桃A&quot;#};
						<br /> [/code]
						<br /> 如图所示，在变量的命名上就体现了&quot;一堆&quot;的意义。&nbsp;
						<br /> 数组的声明有两种方式，如下所示：&nbsp;
						<br /> [code=java]
						<br /> #[Keywords]int#[] ary：声明了数组变量 ary, 数组变量是代词。
						<br /> #[Keywords]int #ary[];：为了与C语法兼容的写法，不建议写法。
						<br /> [/code]
						<br /> 定义数组方式如下代码：
						<br /> [code=java]
						<br /> #[Keywords]package #javamanual;
						<br /> #[Keywords]public #[Keywords]class #ArrayTest {
						<br /> &nbsp;&nbsp; &nbsp;#[Keywords]public #[Keywords]static #[Keywords]void #main(String[] args) {
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Comments]// 声明和初始化一个数组
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Keywords]int#[] arr = #[Keywords]new #[Keywords]int#[4]; #[Comments]// 第1种写法
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Keywords]int #arr1[] = #[Keywords]new #[Keywords]int#[4]; #[Comments]// 第2种写法（不推荐）
						<br /> &nbsp;&nbsp; &nbsp;#}
						<br /> #}
						<br /> [/code]
						<br /> [color=blue]数组对象初始化
						<br /> [code=java]
						<br /> #[Keywords]public #[Keywords]class #ArrayDemo {
						<br /> &nbsp;&nbsp; &nbsp;#[Keywords]public #[Keywords]static #[Keywords]void #main(String[] args) {
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Comments]// 声明一个数组变量
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Keywords]int#[] arr;
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Comments]// 创建一个数组对象，有4个int元素
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#arr = #[Keywords]new #[Keywords]int#[4];
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Comments]// java数组必须给定大小，元素是自动初始化的，数组下标0~3
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#System.#[Fields]out#.println(arr[2]);
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#System.#[Fields]out#.println(arr[3]);
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Comments]// 直接使用元素创建数组，arr引用了一个新的数组
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#arr = #[Keywords]new #[Keywords]int#[] { 1, 2, 3 #};
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#System.#[Fields]out#.println(arr);
						<br /> &nbsp;&nbsp; &nbsp;#}
						<br /> #}
						<br /> [/code]
						<br /> 注：
						<br /> 1、数组变量引用了具体数组对象， 就是代词。
						<br /> 2、数组元素是自动初始化的，自动初始化为&quot;零&quot;值。
						<br /> 3、&quot;零&quot;值包括：0(整型)、0.0(浮点型)、 \u0000(char)、false(boolean)、null(引用类型)。
						<br /> 在今后的的学习中会经常出现如下异常，请大家先熟悉一下，如下所示：
						<br /> [code=java]
						<br /> #[Keywords]public #[Keywords]class #TestArray {
						<br /> &nbsp;&nbsp; &nbsp;#[Keywords]public #[Keywords]static #[Keywords]void #main(String[] args) {
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Comments]// 声明一个数组变量
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Keywords]int#[] arr = #[Keywords]new #[Keywords]int#[4];
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#System.#[Fields]out#.println(arr[0]); #[Comments]// 结果为0
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#System.#[Fields]out#.println(arr[5]); #[Comments]// 数组访问越界，会出异常
						<br /> &nbsp;&nbsp; &nbsp;#}
						<br /> #}
						<br /> [/code]
						<br /> 运行结果如下：
						<br /> [code=java]
						<br /> 0
						<br /> Exception in thread &quot;main&quot; java.lang.ArrayIndexOutOfBoundsException: 5
						<br /> &nbsp;&nbsp; &nbsp;at basic.array.TestArray.main(TestArray.java:9)
						<br /> [/code]
						<br /> Java中的初始化分为两种方式：动态初始化和静态初始化，如下所示：
						<br /> [code=java]
						<br /> #[Keywords]package javamanual;
						<br /> #[Keywords]public #[Keywords]class #ArrayTest {
						<br /> &nbsp;&nbsp; &nbsp;#[Keywords]public #[Keywords]static #[Keywords]void #main(String[] args) {
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Comments]// 声明和初始化一个数组
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Keywords]int#[] arr = #[Keywords]new #[Keywords]int#[4]; #[Comments]// 动态初始化
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Keywords]int #arr1[] = #[Keywords]new #[Keywords]int#[4]; #[Comments]// 动态初始化
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Keywords]int #arr2[] = #[Keywords]new #[Keywords]int#[] { 1, 2, 3 #}; #[Comments]// 动态初始化
						<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;#[Keywords]int #arr3[] = { 1, 2, 3 #}; #[Comments]// 静态初始化
						<br /> &nbsp;&nbsp; &nbsp;#}
						<br /> #}
						<br /> [/code]
						<br /> 注：静态初始化只能用在声明数组变量时候同时初始化。
					</p>

				</div>
			</div>
		</div>

	</body>

</html>